import numpy as np


# 查找数组中值为 val 的元素的下标，如果找不到，则返回离其最近的上一个值的下标
def get_index(arr, val):
    """
    查找数组中值为 val 的元素的下标，如果找不到，则返回离其最近的上一个值的下标
    :param arr: 深度数组
    :param val: 要查找的数据
    :return: index 下标
    """
    indices = np.where(arr == val)[0]
    if indices.size > 0:
        # 如果找到了 deep，获取其第一个下标
        index = indices[0]
    else:
        # 如果没找到 deep，向下取最近的数据的下标
        diff = arr - val
        valid_indices = np.where(diff < 0)[0]
        if valid_indices.size > 0:
            index = valid_indices[diff[valid_indices].argmax()]
        else:
            # 如果所有元素都大于 val，取第一个元素的下标
            index = 0

    return index